依赖包报错 module declares its path as...
1 | module declares its path as: |
今天将一部分共用的代码提取出来, 放在 github 以单独项目进行管理. 从另一个库进行依赖的时候, 执行 go mod tidy
加载依赖, 报错如上.
看了一下其他人的包, go.mod 文件内, module
的值应该与 github 路径一致, 与引用的地方的写法一致.
例如 https://github.com/gorilla/websocket
包, 里面 go.mod 中 module
的定义应该是 module github.com/gorilla/websocket
, 在引用该包的时候, 应该使用 import "github.com/gorilla/websocket"
. 这三个地方应该是一致的. 如果不一致, 就会出现上面的依赖报错, 意思是 import 引入的 github 地址, 下载下来的代码, 声明自己的名字和预期不一样.
更新被依赖包代码后, 使用 go mod tidy
无法拉取最新 version
环境变量:
1 | export GO111MODULE=on |
说明已经开启了 v1.11+ 版本的 module 管理方式.
在更新了被依赖包之后, 想要在引用的地方更新
- 直接使用 tidy 进行更新无效, 并没有更新代码.
- 删除 go.sum, 以及 go.mod 中对应的行后, 使用 tidy 进行更新无效
- 删除
$GOPATH/pkg/mod
文件夹的缓存, 使用 tidy 进行更新无效
后来找到, 在 ~/go/pkg/mod
下面, 仍然有一份缓存, 将其删除; 同时将 $GOPATH/pkg/mod
删除; 同时修改依赖 go.mod 相关记录; 三者同时进行, 即可获取到 github 刚刚的更新.